package com.pai4j.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 群成员角色枚举
 */
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum GroupMemberRoleEnum {

    OWNER(1, "群主"),
    ADMIN(2, "管理员"),
    MEMBER(3, "普通成员");

    private Integer role;
    private String roleName;

    /**
     * 判断是否为群主
     */
    public static boolean isOwner(Integer role) {
        return OWNER.getRole().equals(role);
    }

    /**
     * 判断是否为管理员
     */
    public static boolean isAdmin(Integer role) {
        return ADMIN.getRole().equals(role);
    }

    /**
     * 判断是否为普通成员
     */
    public static boolean isMember(Integer role) {
        return MEMBER.getRole().equals(role);
    }

    /**
     * 判断是否有管理权限（群主或管理员）
     */
    public static boolean hasAdminPermission(Integer role) {
        return isOwner(role) || isAdmin(role);
    }

    /**
     * 根据角色值获取枚举
     */
    public static GroupMemberRoleEnum getByRole(Integer role) {
        for (GroupMemberRoleEnum roleEnum : values()) {
            if (roleEnum.getRole().equals(role)) {
                return roleEnum;
            }
        }
        return null;
    }
}
